//
//  NSDate+Extension.swift
//  WHWeiBo01
//
//  Created by whitcast on 16/7/16.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

extension NSDate {
    // 根据时间字符串创建时间对象
    class func sinaDate(createAtStr: String) -> NSDate {
        
        //  1. 转换成时间对象
        let dt = NSDateFormatter()
        //  指定格式化方式
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //  指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        let createAtDate = dt.dateFromString(createAtStr)!
        
        return createAtDate
        
    }
    
    //  根据时间对象转成字符串
    var sinaDateString: String {
        
        //  判断年份相当
        let dt = NSDateFormatter()
        //  指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        if isThisYear(self) {
            //  判断是否是今天
            //  日历对象
            let calendar = NSCalendar.currentCalendar()
            //
            if calendar.isDateInToday(self) {
                //  是今天
                //  怎么计算发微博时间距离当前时间差多少秒
                //                let timeinterval = abs(createAtDate.timeIntervalSinceDate(NSDate()))
                //                print(timeinterval)
                let timeinterval = abs(self.timeIntervalSinceNow)
                if timeinterval < 60 {
                    //  1分钟之前
                    return "刚刚"
                } else if timeinterval < 60 * 60 {
                    //  秒转换成分钟
                    let result = timeinterval / 60
                    
                    return "\(Int(result))分钟前"
                } else {
                    
                    // 秒转换成小时
                    let result = timeinterval / 3600
                    return "\(Int(result))小时前"
                }
                
                
                
            } else if calendar.isDateInYesterday(self) {
                //  昨天
                dt.dateFormat = "昨天 HH:mm"
            } else {
                //  其他
                dt.dateFormat = "MM-dd HH:mm"
            }
            
            
            
            
            
        } else {
            //  不是今年
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        
        
        return dt.stringFromDate(self)
        
        
    }
    
    
    /**
     发布微博时间跟我们当前时间的年份进行对比,判断其是否是同一年
     
     - parameter createDate: 发送微博时间
     */
    private func isThisYear(createDate: NSDate) -> Bool {
        let dt = NSDateFormatter()
        dt.dateFormat = "yyyy"
        //  指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        //  把时间对象转成字符串
        let createDateYear = dt.stringFromDate(createDate)
        //  把当前时间对象转成字符串
        let currentDateYear = dt.stringFromDate(NSDate())
        
        return createDateYear == currentDateYear
    }
    
    
}
